namespace DigiOffice.Integration.TBIXchangeAzure.Messages
open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
[<AllowNullLiteral>]
type Environment() =
member val Title:String = null with get,set
member val Code:String = null with get,set
[<AllowNullLiteral>]
type Party() =
member val Title:String = null with get,set
member val Code:String = null with get,set
member val Version:String = null with get,set
member val Environment:Environment = null with get,set
[<AllowNullLiteral>]
type Header() =
member val MessageID:String = null with get,set
member val Timestamp:DateTime = new DateTime() with get,set
member val Sender:Party = null with get,set
member val Recipient:Party = null with get,set
member val RequestMessageID:Object = null with get,set
type eventType =
| Update = 0
| Create = 1
| Delete = 2
| Response = 3
[<AllowNullLiteral>]
type Document() =
member val ID:Guid = new Guid() with get,set
member val RootDocumentID:Guid = new Guid() with get,set
member val RegistrationprofileID:Guid = new Guid() with get,set
member val Title:String = null with get,set
member val FullTitle:String = null with get,set
member val Number:String = null with get,set
member val Version:String = null with get,set
member val ExternalNumber:String = null with get,set
member val ExternalVersion:String = null with get,set
member val InternalNumber:String = null with get,set
member val InternalInvoiceNumber:String = null with get,set
member val PersonID:Int32 = new Int32() with get,set
member val RelationID:Int32 = new Int32() with get,set
member val RelationTitle:String = null with get,set
member val ProjectID:Int32 = new Int32() with get,set
member val ProjectTitle:String = null with get,set
member val Extension:String = null with get,set
member val Date:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val CommentsCount:Int32 = new Int32() with get,set
member val HasComments:Boolean = new Boolean() with get,set
member val HasPreview:Boolean = new Boolean() with get,set
member val ExtraField:String = null with get,set
member val IsFavorite:Boolean = new Boolean() with get,set
member val DocumentcategoryText:String = null with get,set
member val FileSize:Nullable<Int64> = new Nullable<Int64>() with get,set
member val FileDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val Hash:String = null with get,set
member val HashType:String = null with get,set
member val FileUrl:String = null with get,set
member val StandardDocumentUrl:String = null with get,set
member val IsCorporateIdentity:Boolean = new Boolean() with get,set
member val UserTitle:String = null with get,set
member val IsFrozen:Boolean = new Boolean() with get,set
member val InternalCompanyID:Int32 = new Int32() with get,set
member val DirectUrl:String = null with get,set
member val AllowDigitalSigningOnlyOnPrimaryVersions:Boolean = new Boolean() with get,set
member val IsPrimaryVersion:Boolean = new Boolean() with get,set
member val FileExtension:String = null with get,set
member val CustomProperties:Dictionary<String, Object> = new Dictionary<String, Object>() with get,set
[<AllowNullLiteral>]
type DocumentMessage() =
member val Header:Header = null with get,set
member val EventType:eventType = new eventType() with get,set
member val Document:Document = null with get,set
[<AllowNullLiteral>]
type DocumentRequestMessage() =
member val Header:Header = null with get,set
member val RootDocumentID:String = null with get,set
member val IncludePhysicalFile:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type ProcessDocumentRequestMessage() =
member val InstanceId:Guid = new Guid() with get,set
member val DocumentRequest:DocumentRequestMessage = null with get,set
F# ProcessDocumentRequestMessage DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/reply/ProcessDocumentRequestMessage HTTP/1.1
Host: kpm_digiofficeapigateway.tbi.nl
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
DocumentRequest:
{
Header:
{
MessageID: String,
Timestamp: 0001-01-01,
Sender:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
Recipient:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
RequestMessageID: {}
},
RootDocumentID: String,
IncludePhysicalFile: False
}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Header:
{
MessageID: String,
Timestamp: 0001-01-01,
Sender:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
Recipient:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
RequestMessageID: {}
},
EventType: Update,
Document:
{
GlobalID: String,
RootDocumentID: String,
Code: String,
Subject: String,
VersionNumber: String,
NewestVersion: False,
RelationReference:
{
GlobalID: String,
Title: String
},
DocumentTypeReference:
{
GlobalID: String,
Title: String
},
ProjectReference:
{
GlobalID: String,
Title: String
},
ConstructionBlockReference:
{
GlobalID: String,
Title: String
},
ConstructionNumberReference:
{
GlobalID: String,
Title: String
},
HousingTypeReference:
{
GlobalID: String,
Title: String
},
Floor: 0,
FloorSpecified: False,
DeletedDate: 0001-01-01,
DeletedDateSpecified: False,
File:
{
Type: String,
Name: String,
Size: 0,
Content: String,
ModifiedDate: 0001-01-01
},
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
}